/**
 * 初始化图片管理详情对话框
 */
var PicInfoDlg = {
    picInfoData : {},
    validateFields: {
        title: {
            validators: {
                notEmpty: {
                    message: '文件描述不能为空'
                }
            }
        },
        url: {
            validators: {
                notEmpty: {
                    message: '请上传文件'
                }
            }
        }
    }
};

/**
 * 清除数据
 */
PicInfoDlg.clearData = function() {
    this.picInfoData = {};
}

/**
 * 设置对话框中的数据
 *
 * @param key 数据的名称
 * @param val 数据的具体值
 */
PicInfoDlg.set = function(key, val) {
    this.picInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
    return this;
}

/**
 * 设置对话框中的数据
 *
 * @param key 数据的名称
 * @param val 数据的具体值
 */
PicInfoDlg.get = function(key) {
    return $("#" + key).val();
}

/**
 * 关闭此对话框
 */
PicInfoDlg.close = function() {
    parent.layer.close(window.parent.Pic.layerIndex);
}

/**
 * 收集数据
 */
PicInfoDlg.collectData = function() {
    this
    .set('id')
    .set('title')
    .set('url')
    .set('date')
        .set('category');
}

/**
 * 提交添加
 */
PicInfoDlg.addSubmit = function() {

    this.clearData();
    this.collectData();
    if (!this.validate()) {
        return;
    }

    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/pic/add", function(data){
        Feng.success("添加成功!");
        window.parent.Pic.table.refresh();
        PicInfoDlg.close();
    },function(data){
        Feng.error("添加失败!" + data.responseJSON.message + "!");
    });
    ajax.set(this.picInfoData);
    ajax.start();
}
/**
 * 验证数据是否为空
 */
PicInfoDlg.validate = function () {
    $('#fileInfoForm').data("bootstrapValidator").resetForm();
    $('#fileInfoForm').bootstrapValidator('validate');
    return $("#fileInfoForm").data('bootstrapValidator').isValid();
};

/**
 * 提交修改
 */
PicInfoDlg.editSubmit = function() {

    this.clearData();
    this.collectData();

    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/pic/update", function(data){
        Feng.success("修改成功!");
        window.parent.Pic.table.refresh();
        PicInfoDlg.close();
    },function(data){
        Feng.error("修改失败!" + data.responseJSON.message + "!");
    });
    ajax.set(this.picInfoData);
    ajax.start();
}

$(function() {
    Feng.initValidator("fileInfoForm", PicInfoDlg.validateFields);
    var uploader = WebUploader.create({

        // swf文件路径
        swf:Feng.ctxPath+'/static/js/plugins/webuploader/Uploader.swf',

        // 文件接收服务端。
        server: '/newsEditor/uploadFile',


        // 选择文件的按钮。可选。
        // 内部根据当前运行是创建，可能是input元素，也可能是flash.
        pick: {
            id:'#file',
            multiple:false, //"只上传一个"
        },

        // 不压缩image, 默认如果是jpeg，文件上传前会压缩一把再上传！
        resize: false,
        //限制类型
        accept : {
            title : 'file',
            extensions : 'jpg,jpeg,png',
        },
    });
    $("#ctlBtn").click(function () {
        uploader.upload();
    });
    // 当有文件被添加进队列的时候
    uploader.on( 'fileQueued', function( file ) {
        var $list = $("#list");
        $list.append( '<div id="' + file.id + '" class="item">' +
            '<h4 class="info">' + file.name + '</h4>' +
            '<p class="state">文件已就绪,请点击提交开始上传...</p>' +
            '</div>' );
    });
    // 文件上传过程中创建进度条实时显示。
    uploader.on( 'uploadProgress', function( file, percentage ) {
        var $li = $( '#'+file.id ),
            $percent = $li.find('.progress .progress-bar');

        // 避免重复创建
        if ( !$percent.length ) {
            $percent = $('<div class="progress progress-striped active">' +
                '<div class="progress-bar" role="progressbar" style="width: 0%">' +
                '</div>' +
                '</div>').appendTo( $li ).find('.progress-bar');
        }

        $li.find('p.state').text('上传中');

        $percent.css( 'width', percentage * 100 + '%' );
    });
    uploader.on( 'uploadSuccess', function( file,response ) {
        $( '#'+file.id ).find('p.state').text('已上传');
        $("#url").val(response);
    });

    uploader.on( 'uploadError', function( file ) {
        $( '#'+file.id ).find('p.state').text('上传出错');
    });

    uploader.on( 'uploadComplete', function( file ) {
        $( '#'+file.id ).find('.progress').fadeOut();
    });


});
